'use strict'
let { users } = require('../model');
// 显示注册界面
let register_fn = async (ctx, next) => {
    ctx.render('register.html', { msg: '' });
};

// 处理注册请求
let registerDone_fn = async (ctx, next) => {
    // 获取从前端传来的数据（用户信息）
    let uid = ctx.request.body.registerUsername || '';
    let pwd = ctx.request.body.registerPassword || '';
    let confirmpwd = ctx.request.body.registerRePassword || '';

    console.log(uid);
    console.log(pwd);
    console.log(confirmpwd);

    let res = '';

    // 判断用户名、密码是否为空，为空则返回提示信息；不为空则尝试从数据库中查询是否有同名用户，如果没有，则创建用户；如果有，则返回提示信息；
    // 初步尝试then的玩法，出现了一些顺序问题（前端获取的返回数据为空的情况）
    if (uid.length > 0 && pwd.length > 0 && confirmpwd.length>0 && pwd === confirmpwd) {
        let row = await users.findOne({
            where: {
                username: uid
            }
        });
        let u2Json = JSON.stringify(row);
        console.log(u2Json);

        if (u2Json === 'null') {
            let u1 = await users.create({
                username: uid,
                password: pwd
            });
            
            let u1Json = JSON.stringify(u1);
            if (u1Json !== 'null') {
                res = { code: 200, msg: '用户注册成功' };
            } else {
                res = { code: 1000, msg: '因为服务器或者网络原因，用户未注册成功' };
            }
        } else {
            res = { code: 1000, msg: '当前用户名已经注册，请确认后重试' };
        }
    } else {
        res = { code: 1000, msg: '用户名和密码不能为空，且两密码应该一致' };
    }
    // 返回消息
    ctx.body = JSON.stringify(res);
};

module.exports = {
    '/register': ['get', register_fn],
    '/registerDone': ['post', registerDone_fn]
}